草庐IT

mysql GRANT + WHERE

全部标签

mysql - 如何使用 WHERE 子句将数据从一个表复制到另一个表?

我有两个看起来像这样的表表1:idvaluenumber表2:idnamevaluerid我想将value从TABLE2复制到TABLE1,其中TABLE2.rid=TABLE1.id。我尝试了以下方法:INSERTINTOTABLE1(value)SELECTvalueFROMTABLE2WHERETABLE2.rid=TABLE1.id.但是我不能这样做,因为我还没有加入TABLE1和TABLE2——如果我尝试这样做,我会收到语法错误。任何帮助将不胜感激。 最佳答案 您需要带有JOIN子句而不是INSERT语句的UPDATE语句

php - Codeigniter Active Record HAVING/WHERE db.field = db.field

谁能告诉我,这是否可以通过事件记录来实现?如何实现?$this->db->select('*');$this->db->from('table1');$this->db->join('table2','table1.id=table2.fi_id','left');$this->db->having('table1.second_id','table2.fi_second_id',false);$query=$this->db->get();问题在于,'table2.fi_second_id'始终被视为字符串-而不是数据库字段。也用'where'试过这个-这是同样的问题。谢谢

mysql - 包含多个 'Not Like' 的 Where 语句

我正在尝试编写以下语句:WHEREfieldLIKE'Pandora'ANDfieldNotLike'radio','digital','internet';翻译:选择领域类似于Pandora,而不是radio、数字或互联网。有没有一种方法可以在不写NotLike3次且中间使用AND的情况下编写此语句?谢谢 最佳答案 如果“字段”不仅仅是单个单词,则需要执行以下操作:SELECT*FROMtableWHEREfieldLIKE'%Pandora%'ANDfieldNOTLIKE'%radio%'ANDfieldNOTLIKE'%in

带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用

我的更新查询似乎无法进行下一步。我能够成功查看与选择相关的列没问题:SELECTsales_flat_order_grid.entity_id,sales_flat_order_grid.increment_id,sales_flat_order.coupon_codeFROMsales_flat_order_gridINNERJOINsales_flat_orderONsales_flat_order_grid.entity_id=sales_flat_order.entity_idWHEREsales_flat_order_grid.increment_id="12345678";

mysql - 使用 Join with Where

我有下表。TableName:Recipeidtopicdescriptiondifficultyleveltotaltime1CheeseCheeseEasy102Cheese1Cheese1Medium50TableName:Ingredientsidrecipeidingredient11Butter21Cheese31Bread现在,当我运行以下查询时,它会返回食谱id="1",尽管它不应该返回,因为我不想要一个含有黄油的食谱。SELECTrecipe.idFROM`recipe`INNERJOINingredientsONrecipe.id=ingredients.recip

mysql - 选择 id WHERE

我有表格:product_id|filter_id68|268|466|169|467|167|5我想得到`product_id`WHERE`filter_id`='2'AND`filter_id`='4'即,我只需要获取product_id=68SELECT`product_id`FROM`filter`WHERE`filter_id`IN(2,4)-unsuitable我该怎么做? 最佳答案 您可以使用groupby来选择同时具有filter_id的2和4的所有product_idsselectproduct_idfrommyt

sql - 类似于mysql sql where子句中的MAX

我正在尝试编写一个sql函数来执行如下操作:SELECTperson.id,person.phonenumberFROMpersonINNERJOINactivityONperson.id=activity.personidWHEREMAX(activity.activitydate)每次联系一个人时,我们都会为他们创建一个带有注释等的事件记录。所以我正在寻找过去180天内未联系过的所有人。显然,这是行不通的,因为max不能用在where子句中。我看到了this,但是mysql没有with语句。另外,我试过了SELECTperson.id,person.phonenumber,MAX(

mysql - "where id in(ids)"的性能?

可以使用以下查询吗?性能如何?select*fromtablewhereidnotin(2000ormuchmoreidshere)我的初始测试进行得非常快,但我想这是因为现在只有我在使用服务器。 最佳答案 如果你有一个索引,它会非常快。但是有一个bug在MySQL中(可能在MySQL5.5中已修复)如果没有索引,它不仅会很慢,而且会难以置信慢。这是因为子查询可以被检测为DEPENDENTSUBQUERY(相关子查询),即使它不是。您可以通过运行EXPLAINSELECT...并检查子查询的key不为NULL来查看MySQL是否使用

php - 使用 WHERE 选择多行

PIDVALUE31431913如何选择同时值为3和9的行?我试过了selectPIDfromtablewhereVALUE=3andVALUE=9所以我得到如下所示的东西,而不是我得到一个空集。PID1PID4不应包含在结果中,因为它没有VALUE9 最佳答案 WHERE子句一次只能针对给定表中的一个行评估条件。您不能使条件跨越多行。但是您可以使用自联接将同一表中的多行匹配到结果集中的一行,这样您就可以应用同时涉及这两者的条件。SELECTt1.pidFROMtablet1JOINtablet2ONt1.pid=t2.pidWHE

php - 使用 WHERE 子句加速 MySQL (MyISAM) 计数

我们正在实现一个分析书籍的系统。该系统是用PHP编写的,对于每本书,循环遍历单词并分析每个单词,设置来自各种正则表达式和其他测试的某些标志(转换为数据库字段)。这会生成一个matches表,类似于下面的示例:+------------------------+--------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+------------------------+--------------+------+-----+---------+------------